A programmable logic controller, or a “PLC,” is a small computer generally used for automation of real-world processes, such as, e.g., control of machinery on factory assembly lines. Modern PLC's are microprocessor-based devices with input/output (“I/O”) functionality (usually input/output circuitry) which oftentimes monitors the status of field connected sensor inputs and controls certain output actuators according to user-created logic.
PLC's are generally modular devices, composed of separate parts such as, e.g., commercially available processor(s), memory chips, I/O devices, etc. As machinery and machine controllers continue to decrease in size, many PLC's have similarly decreased in size. In this light, many parts of a PLC have been integrated into a single package such as, e.g., I/O circuitry integral with a processor in a single integrated circuit or integrated circuit package (“chips,” as defined herein). Integration of multiple parts into a single chip, however, has been limited.
The user-created logic which drives a PLC has evolved along with the size and integration of components. Such logic is typically stored in non-volatile memory communicating with or integral to the PLC's processor. User-created logic is typically created on a separate computing device, such as a personal computer or a workstation, and then transferred to the PLC's memory. This allows a stream-lining of the internal logic which controls the PLC. While such streamlining is beneficial in terms of conserving storage space, the cost of such streamlining is limiting the internal logic to low-level processing. Such low-level processing is undesirable as it forces a user to either program the user-created logic at a low level, which is time consuming and requires a user knowledgeable regarding such low-level programming, or to perform high-level programming on the separate computing device, translate the programming to a lower-level, and transfer the logic to the PLC.